草庐IT

C++ CUDA 指向成员的指针

全部标签

c++ - <function> 不是 <class> 的成员

我已将我的函数“Credit”声明为带有一些参数的私有(private)成员。我的观察是,每当我尝试不带任何参数进行编译时,编译器都会成功编译。但是一旦我用函数中的参数进行编译,编译器就会报错'Transaction::Credit'isnotamemberof'Transaction'这是我的代码classTransaction:publicMenu{private:voidCredit(intdepost);//{return0;}public:voidDeposit();voidWithdraw(){}voidTransfer(){}};voidTransaction::Depo

c++ - 为什么派生类不能在这段代码中调用 protected 成员函数?

#includeclassBase{protected:voidsomethingProtected(){std::cout我认为也许只有this的protected成员可以使用,而其他实例的protected成员永远无法访问。但是:classDerived:publicBase{public:voidsomethingDerived(Derived&d){d.somethingProtected();//Thiscompileseventhoughdis//potentiallyadifferentinstance}voidsomethingDerived(Base&b){b.som

c++ - 释放存储在 std::queue 中的堆指针

考虑这段代码:classFoo;std:queueq;//allocateandaddobjectstothequeuefor(inti=0;i通过单步执行,我可以看到Foo析构函数在每个对象被删除时被调用,所以我希望进程内存使用量会随着每次删除发生而下降-但事实并非如此。在我的应用程序中,队列用于生产者/消费者线程,内存使用量一直在增长。我发现恢复内存的唯一方法是在我从队列中弹出所有项目时将队列交换为空队列:q.swap(std::queue());如果我使用vector而不是队列,删除存储的对象会立即降低进程内存使用量。任何人都可以解释为什么队列不是那样的吗?编辑以从评论中澄清:我

c++ - 派生模板类访问基类成员数据

这个问题是对thisthread中提出的问题的进一步插入.使用以下类定义:templateclassFoo{public:Foo(constfoo_arg_tfoo_arg):_foo_arg(foo_arg){/*dosomethingforfoo*/}TFoo_T;//eitheraTypeAoraTypeB-TBDfoo_arg_t_foo_arg;};templateclassBar:publicFoo{public:Bar(constfoo_arg_tbar_arg,consta_arg_ta_arg):Foo(bar_arg)//base-classinitializer{

c++ - 模板成员函数重载问题

N4296::13.1/2.2[over.load]的标准说:Likewise,memberfunctiontemplatedeclarationswiththesamename,thesameparameter-type-list,andthesametemplateparameterlistscannotbeoverloadedifanyofthemisastaticmemberfunctiontemplatedeclaration.所以,我认为下面的程序是病式的:#includestructA{templatestaticvoidfoo(){}templatestaticintf

c++ - 根据 ISO 2003,内部类可以访问外部的私有(private)成员

如ISOC++2003中所述§11.8Nestedclasses[class.access.nest]Themembersofanestedclasshavenospecialaccesstomembersofanenclosingclass,nortoclassesorfunctionsthathavegrantedfriendshiptoanenclosingclass;theusualaccessrules(clause11)shallbeobeyed.Themembersofanenclosingclasshavenospecialaccesstomembersofaneste

c++ - 具有许多成员变量的类的最佳实践

简短的问题:如果你必须有很多(甚至超过200个)成员变量(它们中的每一个都将是我们分析中感兴趣的一些物理量的图)。声明这些变量的最佳位置是什么?详细解释:我用于分析的框架创建了一个类来循环事件,它可以缩小到constructor()initialize()execute()finalize()在header中,您可以像这样声明指针(这显然是我们必须使用的ROOT包的要求):std::vector*m_jet_pt;和指向直方图类的指针:TH1F*h_jet_pt;然后在constructor中,必须将指针初始化为某个明确的内存地址(据我所知,这是为了以后从文件中读取数据)constru

c++ - 通过唯一的成员 ID 来标识对象是个好主意吗?

我的问题是,我应该如何将对象相互关联起来。我有两个vector,vectorbabies和vectortoys.每个宝宝和每个玩具都有一个独特的成员intid.因此所有婴儿和玩具都从0到n编号。现在,每个Baby都有一个喜欢的Toy,每个Toy都有一个喜欢的Baby。到目前为止,我使用的是指针:Baby有一个指向他喜欢的Toy的指针,而这个Toy有一个指向Baby的指针。(没关系,因为我永远不会改变vector)然而,区分婴儿和玩具的是它们的ID,而不是它们在vector中的位置。随着时间的推移,我质疑我的设计并发现指针是有效的,但它们可能会在未来导致问题。相反,如果我使用ID就没问题

c++ - 为什么 UuidFromString 函数请求非常量指针指向 unsigned char?

我不知道为什么UuidFromString函数需要非常量指向无符号字符的指针。为什么不用constchar*代替呢?我的想法是不需要修改第一个参数所指出的数据。 最佳答案 UuidFromString专为COM/DCOM而设计。unsignedchar是为了防止需要检查负数char值(默认char是signed,这意味着值的范围是[-128,127]-因为这个字符串应该是ANSI字符,这是避免条件检查的一种廉价方法)。它的姊妹函数(UuidToString)确实需要一个const输入参数。我在文档中看不到关于为什么UuidFromS

c++ - to_string 不是 std 的成员,g++ (mingw)

我正在制作一个小型词汇内存程序,其中会随机闪现单词以了解含义。正如BjarneStroustroup告诉我们的那样,我想使用标准C++库,但我一开始就遇到了一个看似奇怪的问题。我想将一个long整数更改为std::string以便能够将其存储在文件中。为此,我使用了to_string()。问题是,当我用g++(版本4.7.0,如其--‍version标志中所述)编译它时,它说:PSC:\Users\Anurag\SkyDrive\College\Programs>g++-std=c++0xttd.cppttd.cpp:Infunction'intmain()':ttd.cpp:11:2